iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0
自我挑戰組

區塊鏈 Blockchain系列 第 20

Day20 什麼是Solidity ?

  • 分享至 

  • xImage
  •  

Solidity(合約導向式語言)

  • 一種靜態型別的程式語言
  • 用於開發在EVM(太坊虛擬機)上執行的智能合約
  • 被編譯為可在EVM上執行的位元組碼
  • 夠編寫出可自我執行其欲實現之商業邏輯的應用程式,一份具權威性且永不可悔改的交易合約

https://ithelp.ithome.com.tw/upload/images/20221004/20152174vrxvpWYUvY.png

https://ithelp.ithome.com.tw/upload/images/20221004/20152174k7DmKQruli.png


SOLIDITY 編寫程式的數據類型
支持在其他 OOP 語言中看到的所有常見數據類型

Boolean - Boolean 數據類型在條件為真時返回“1”,在條件為假時返回“0”,具體取決於條件的狀態。
整數 - 您可以在 Solidity 中對整數值進行簽名或取消簽名。它還支持運行時異常以及“uint8”和“uint256”關鍵字。
字符串 - 單引號或雙引號可以表示字符串。
修飾符 - 在執行智能合約的程式碼之前,修飾符通常會驗證任何條件是否合理。
Array - Solidity 編寫程式的語法類似於其他 OOP 語言,它支持單維和多維數組。


如何開始使用 SOLIDITY 編寫程式?

什麼是 Solidity 編寫程式、它的數據類型、智能合約和以太坊中的 EVM?

Pragma 是編譯器關於如何處理程式碼的指令。每一行solidity 源程式碼都應該以“version pragma”開頭,它指定使用哪個版本的solidity 編譯器。
這可以防止程式碼與可能引入更改的未來編譯器版本不兼容。
合約關鍵字
什麼是 Solidity 編寫程式、它的數據類型、智能合約和以太坊中的 EVM?
contract 關鍵字聲明了一個封裝程式碼的合約。
狀態/聲明變量
什麼是 Solidity 編寫程式、它的數據類型、智能合約和以太坊中的 EVM?
狀態變量寫在以太坊區塊鏈上,並永久保存在合約存儲中。
uint public var1 行聲明了一個名為 var1 的 uint 類型的狀態變量(256 位的無符號整數),它非常類似於在數據庫中添加一個槽。
函數聲明

什麼是 Solidity 編寫程式、它的數據類型、智能合約和以太坊中的 EVM?

這是一個名為“set”的訪問修飾符類型為 public 的函數,它將數據類型為 uint 的變量 a 和變量 b 作為參數。
這是一個更新 var1 和 var2 值的簡單智能合約的示例。任何有權訪問以太坊區塊鏈的人都可以使用 set 函數來更改 var1 和 var2 的值。
通過將變量 var1 和 var2 的值相加,可以計算出變量 sum。
它將使用“get”函數檢索並打印狀態變量 sum 的值。


SOLIDITY 編寫程式的優點
除了 Solidity 編寫程式的主要功能外,Solidity 編寫程式還提供了許多其他功能,使其優於其他基於以太坊的語言。

除了基本的數據類型,Solidity 編寫程式還允許複雜的數據類型和成員變量。
它提供了一個應用程式二進制接口 (ABI) 來實現類型安全。如果編譯器發現任何變量的數據類型不匹配,ABI 就會生成錯誤。
它指的是“自然語言規範”,用於將以用戶為中心的規範轉化為機器可以理解的語言。
通過區塊鏈認證培訓課程解讀全球圍繞區塊鏈的熱潮 。

Solidity
https://docs.soliditylang.org/en/latest/index.html

https://gasolin.gitbooks.io/learn-ethereum-dapp/content/write-smart-contract-with-solidity.html

Solidity文法查詢
https://topmonks.github.io/solidity_quick_ref/


上一篇
Day19 Metamask
下一篇
Day21 Truffle
系列文
區塊鏈 Blockchain30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言